home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio 2000 #2
/
Ham Radio 2000 - Volume 2.iso
/
HAMV2
/
TCP_IP
/
TNOS230S
/
TNOSMAP.C
< prev
next >
Wrap
C/C++ Source or Header
|
1997-09-14
|
4KB
|
212 lines
/* *SIMPLE* program to decode the TNOS Features Flags from the
Features Map produced by 'tnos -m'
*/
#include <stdio.h>
#include "map.h"
#define CHECKFOR(y) if (string[y##_OFF] & y##_VAL) printf (format, #y)
#define PLAIN 0
#define HEADER 1
#define CONFIG 2
unsigned char string[MAPLENGTH + 1];
char const *format = "%s\n";
char const *format2 = "%s\t%d\n";
void
main (int argc, char *argv[])
{
int index = 1;
char *tmp;
unsigned char *cp;
char buf[3];
int ch;
int mode = PLAIN;
if (argc > 1 && !strcmp (argv[1], "-c")) {
format = "set %s\t1\n";
format2 = "set %s\t%d\n";
argc--;
++argv;
mode = CONFIG;
} else if (argc > 1 && !strcmp (argv[1], "-h")) {
format = "#define %s\t1\n";
format2 = "#define %s\t%d\n";
argc--;
++argv;
mode = HEADER;
}
if (argc == 4 && !strcmp (argv[1], "Features") && !strcmp (argv[2], "map:"))
index = 3;
tmp = argv[index];
cp = string;
while (*tmp) {
buf[0] = *tmp++;
buf[1] = *tmp++;
buf[2] = 0;
sscanf (buf, "%x", &ch);
*cp++ = ch;
}
CHECKFOR(ALERTMONITOR);
CHECKFOR(ALLCMD);
CHECKFOR(ALLSERV);
CHECKFOR(ALLSESSIONS);
CHECKFOR(ALTERBID);
CHECKFOR(ARCNET);
CHECKFOR(ASKHOME);
CHECKFOR(ASY);
CHECKFOR(ATCMD);
CHECKFOR(AUTOROUTE);
CHECKFOR(AXBCSTR);
CHECKFOR(AXIP);
CHECKFOR(AXUI);
CHECKFOR(BBSEXPORT);
CHECKFOR(BBSIMPORT);
CHECKFOR(BOOTPCLIENT);
CHECKFOR(BOOTPSERVER);
CHECKFOR(BROWSER);
CHECKFOR(CALLBOOK);
CHECKFOR(CALLCLI);
CHECKFOR(CALLSERVER);
CHECKFOR(CATALOG);
CHECKFOR(CONVERS);
CHECKFOR(CRONTAB);
CHECKFOR(DELEGATE);
CHECKFOR(DIALER);
CHECKFOR(DOS_GETFILEATTR);
CHECKFOR(DRSI);
CHECKFOR(DSERVER);
CHECKFOR(EAGLE);
CHECKFOR(EDITHEADERS);
CHECKFOR(ENCAP);
CHECKFOR(ESCAPE);
CHECKFOR(EXPIRY);
CHECKFOR(FBBCMP);
CHECKFOR(FBBFWD);
CHECKFOR(FIFOSERVER);
CHECKFOR(FILECMDS);
CHECKFOR(FOQ_CMDS);
CHECKFOR(FORTH);
CHECKFOR(FTPTDISC);
CHECKFOR(GATECMDS);
CHECKFOR(GPS);
CHECKFOR(HAPN);
CHECKFOR(HOLDMODS);
CHECKFOR(HOLDMONITOR);
CHECKFOR(HOPCHECK);
CHECKFOR(HOPPER);
CHECKFOR(HS);
CHECKFOR(HTTPPBBS);
CHECKFOR(HTTP);
CHECKFOR(IPACCESS);
CHECKFOR(ISUNIX);
CHECKFOR(KISS);
CHECKFOR(LOCK);
CHECKFOR(LOG_GMT_TZ);
CHECKFOR(LOOKSESSION);
CHECKFOR(LZW);
CHECKFOR(MAILBOX);
CHECKFOR(MAILCMDS);
CHECKFOR(MAILFILTER);
CHECKFOR(MAILFOR);
CHECKFOR(MBFWD);
CHECKFOR(MBXTDISC);
CHECKFOR(MESSAGESERVER);
CHECKFOR(MONITOR);
CHECKFOR(NETROM);
CHECKFOR(NNTPFILTER);
CHECKFOR(NNTPS);
CHECKFOR(NNTP);
CHECKFOR(NODECALL);
CHECKFOR(NR4TDISC);
CHECKFOR(NRS);
CHECKFOR(PACKET);
CHECKFOR(PC100);
CHECKFOR(PC_EC);
CHECKFOR(PI);
CHECKFOR(PING_SECURE);
CHECKFOR(PIPECMD);
CHECKFOR(POLLEDKISS);
CHECKFOR(POOLED);
CHECKFOR(POP2CLIENT);
CHECKFOR(POP2SERVER);
CHECKFOR(POP3CLIENT);
CHECKFOR(POP3SERVER);
CHECKFOR(POP);
CHECKFOR(PPP);
CHECKFOR(QRZCALLB);
CHECKFOR(RARP);
CHECKFOR(RDATE);
CHECKFOR(REJECT);
CHECKFOR(REQSVR);
CHECKFOR(RIP);
CHECKFOR(RLINE);
CHECKFOR(RLOGINCLI);
CHECKFOR(RLOGINSERV);
CHECKFOR(RMAIL);
CHECKFOR(ROUTESERVER);
CHECKFOR(RSPF);
CHECKFOR(RXECHO);
CHECKFOR(SAMCALLB);
CHECKFOR(SCC);
CHECKFOR(SCREENSAVER);
CHECKFOR(SCRIPTING);
CHECKFOR(SERVERS);
CHECKFOR(SETPSINFO);
CHECKFOR(SHELL);
CHECKFOR(SLFP);
CHECKFOR(SLIP);
CHECKFOR(SM_CURSES);
CHECKFOR(SM_DUMB);
CHECKFOR(SM_RAW);
CHECKFOR(SOUNDS);
CHECKFOR(SQL);
CHECKFOR(STATS_AREA);
CHECKFOR(STATS_FWD);
CHECKFOR(STATS_HTTP);
CHECKFOR(STATS_MSG);
CHECKFOR(STATS);
CHECKFOR(STATS_TFC);
CHECKFOR(STATS_USE);
CHECKFOR(STRICT_CALL);
CHECKFOR(STRICT_HTTPCALL);
CHECKFOR(TCPACCESS);
CHECKFOR(TCPGATE);
CHECKFOR(TERMSERVER);
CHECKFOR(TIPMAIL);
CHECKFOR(TRACESERVER);
CHECKFOR(TRACE);
CHECKFOR(TRANSLATE);
CHECKFOR(TSCRIPTSERVER);
CHECKFOR(TTYCALL);
CHECKFOR(TUTOR);
CHECKFOR(UDPACCESS);
CHECKFOR(UNIX_SOCKETS);
CHECKFOR(USEPOP3);
CHECKFOR(USERLOG);
CHECKFOR(USE_TZOFFSET);
CHECKFOR(VERSION_ON_FILE);
CHECKFOR(VJCOMPRESS);
CHECKFOR(WPAGES);
CHECKFOR(XFWD);
CHECKFOR(XMODEM);
CHECKFOR(XSERVER);
CHECKFOR(UNUSED1);
if (mode != PLAIN) {
printf (format2, "MTHRESH", 16384);
printf (format2, "NROWS", 25);
printf (format2, "NIBUFS", 10);
printf (format2, "IBUFSIZE", 1024);
printf (format2, "NSESSIONS", 20);
printf (format2, "DEFNSOCK", 40);
}
}